package io;

import java.io.*;
import java.nio.Buffer;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class PWDemo3 {
    public static void main(String[] args) throws FileNotFoundException {
        /*
         * 建议记事本
         * 程序启动后，将用户在控制台上出入的每行字符串都按行写入文件onte.txt中
         * 当单独输入exit时退出
         * */
        //文件字节输出流
        FileOutputStream fileOutputStream = new FileOutputStream("./onte.txt", true);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8);
        BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
        PrintWriter printWriter = new PrintWriter(bufferedWriter, true);

        /*PrintWriter字符流 高级流*/
        PrintWriter printWriter1 = new PrintWriter(
                /*缓存字符流 高级流*/
                new BufferedWriter(
                        /*转换流 高级流 衔接其他高级字符流和文件输出字节流*/
                        new OutputStreamWriter(
                                /*文件输出字节流 真正向文件中写入数据*/
                                new FileOutputStream("./onte.txt", true), StandardCharsets.UTF_8
                        )
                )
                , true); //前提第一个传入的参数是一个流对象,第二个参数 是否每次传输后 自动flush一次 自动直接向文件中写入 并不是在缓存字符流中缓存

        Scanner scanenr = new Scanner(System.in);
        String str = "";
        while (true) {
            System.out.println("请输入需要写入到文件中的数据:");
            str = scanenr.nextLine();
            System.out.println(str);
            if ("exit".equals(str)) {
                break;
            }
            printWriter.println(str);
        }
        printWriter.close();
    }
}
